﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using PreeRegisterModel;
using System.Collections.Specialized;
using PreeRegisterBLL;

namespace PreeRegister_WebAPI.Controllers
{
    public class versionController : ApiController
    {
        [HttpPost]
        /// <summary>
        /// 校验token
        /// </summary>
        /// <param name="any"></param>
        /// <returns></returns>
        public VersionModel get(NameValueCollection any)
        {
            try
            {
                VersionModel version = new VersionModel();

                List<VersionItemModel> items = new List<VersionItemModel>();

                items.Add(VersionBLL.GetVersion("9.0.99.BZBB02.19.01", "2015-11-02", "增加记录版本修改内容及版本号功能", "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBB03.19.01", "2015-11-03", "号源获取接口同煤版查询语句去掉上下午时间段限制", "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBB04.19.01", "2015-11-04"
                    , @"1.查询医生接口中，查询语句去掉最大预约号大于0限制，排班日期可从当前日期-1至未来15日.
                        2.预约挂号接口增加返回orderid
                        3.查询缴费项接口入口参数改oid为orderid，返回参数不返回mainid，只返回orderid。"
                    , "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBB20.19.01", "2015-11-20"
                    , @"1.获取医师接口，根据科室ID先取对应排班，然后反查医师,解决有医师所属A科室而出诊为B科室时查询不到的问题。
                        2.获取诊疗ID接口，可根据配置IFBindZLK，走是从HIS里获取诊疗ID，还是从ZLK库中生成诊疗ID，并创建诊疗卡虚拟账户。入口参数增加userid操作员。"
                    , "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBB22.19.01", "2015-11-22"
                    , @"1.增加人工窗口退费查询接口方法。
                        2.增加门诊费用发票号查询接口方法。"
                    , "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBB23.96.01", "2015-11-23"
                   , @"1.获取排班时增加返回参数加收费"
                   , "liupenglin"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBB24.19.01", "2015-11-24"
                   , @"1.门诊费用发票号查询接口增加判断是否已打印。"
                   , "liujia"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBB24.96.01", "2015-11-24"
                   , @"1.在预约挂号验证患者信息时如果主索引模式增加判断（request.cid.Trim()== 字符串null）"
                   , "liupenglin"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBB25.19.01", "2015-11-25"
                   , @"1.取允许爽约次数全局变量iBlackPreeCount时，增加判断为0时置为3"
                   , "liujia"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBB25.19.02", "2015-11-25"
                   , @"1.获取诊疗ID接口，在诊疗卡绑定模式下，从诊疗卡库获取在用诊疗卡信息。"
                   , "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBB26.96.01", "2015-11-26"
                   , @"1.修改查询门诊已缴费中增加返回参数费用明细ID（idetailid）
                        2.修改同煤版获取号源过滤掉6个外聘专家和门诊部（方便门诊）的号源"
                   , "liupenglin"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBB28.19.01", "2015-11-28"
                   , @"1.head简单实体类增加time节点。
                        2.head简单实体类增加fromtype节点，标识接入厂商名称。
                        3.head简单实体类中token生成规则为key+time再md5加密，其中key根据fromtype节点查询数据库得来，time由客户端上传得来。
                        4.head简单校验中增加是否具有接口访问权限，由fromtype节点查询数据库得来。
                        5.校验token服务接口入口参数改为一个变量字符串，用&做为分隔符获取head和method值。"
   , "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC01.19.01", "2015-12-01"
                   , @"1.预约挂号接口增加判断是预约挂号还是当日挂号。
                       2.预约挂号接口预约校验增加返回值，标识校验失败的各种情况"
                , "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC03.19.02", "2015-12-03"
                   , @"1.获取诊疗ID接口增加返回诊疗卡身编号。
                       2.获取诊疗ID接口增加校验身份证号是否为空或为null。"
, "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC04.19.01", "2015-12-04"
                   , @"1.获取诊疗ID接口返回诊疗卡身编号，如果为空字符串，则置为null，方便趣医识别是已办卡还是未办卡。"
, "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC06.19.01", "2015-12-06"
                   , @"1.预约挂号接口中，校验患者信息时，如果是非同煤的都走sp_VerifyPatientInfo存储过程。"
, "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC07.96.01", "2015-12-07"
                  , @"1.修改非诊疗卡绑定时查询OPDPatient 时 写死cCardNum =''
                      2.住院费用查询增加返回参数出院时间、科室和明细费用的费用时间"
, "liupenglin"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC08.19.01", "2015-12-08"
                    , @"1.人工窗口退费查询接口，增加是否传入流水号判断：有流水号返回流水号对应窗口退号费记录，没有流水号返回所有未获取的窗口退费记录。"
, "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC08.19.02", "2015-12-08"
                    , @"1.增加置人工窗口退费流水已获取标志接口。
                        2.取消预约接口增加订单号入口参数，订单号有值时，按订单号取消预约，没有时，按其它入口参数取消。"
, "liujia"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBC09.96.01", "2015-12-09"
                    , @"1.修改获取诊疗ID时给HIS库中opdpatient表中cInterPayFromType赋值"
, "liupenglin"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC10.96.01", "2015-12-10"
                    , @"1.查询门诊已缴费项时增加返回参数cInterPayFromType（以此来判断是否是线上缴费还时候线下缴费）"
, "liupenglin"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC14.19.01", "2015-12-14"
                    , @"1.查询排班接口中增加来源ID传入，用以校验放号时间。
                        2.查询排班接口中去掉号源赋值。"
, "liujia"));
                items.Add(VersionBLL.GetVersion("9.0.99.BZBC18.19.01", "2015-12-18"
                    , @"1.获取诊疗ID接口查询诊疗ID时改为按身份证号和姓名同时做为条件查询。"
                , "liujia"));


                items.Add(VersionBLL.GetVersion("9.0.99.BZBC21.96.01", "2015-12-21"
                   , @"1.增加同煤版查看检查列表和查看检查明细接口"
               , "liupenglin"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBC21.19.02", "2015-12-21"
, @"1.预约挂号接口，校验患者信息时，校验失败不提示已爽约次数，校验成功才提示。"
, "liujia"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBC22.96.01", "2015-12-22"
, @"1.住院费用查询中增加入口参数身份证号"
, "liupenglin"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBC23.96.01", "2015-12-23"
, @"1.查询就诊状态加入口参数诊疗ID和订单号"
, "liupenglin"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBC24.19.01", "2015-12-24"
, @"1.查询检验报告列表接口，改按cardno查为mzzyno查。"
, "liujia"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBC24.96.02", "2015-12-24"
, @"1.修改查看检查报告列表只取患者最近一次就诊的记录  
    1.增加体检报告列表查询、体检报告明细查询、体检综检建议查询接口  
      "
, "liupenglin"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBC26.19.01", "2015-12-26"
, @"1.增加查询挂号记录接口，用于解决趣医网挂号时，HIS与趣医端服务器已挂号成功，但由于申请新就诊卡情况下操作环节时间较长，超30秒，
      趣医云平台超时失败，此种情况下，需要调用HIS接口判断实际是否挂号成功，若成功，则将云端挂号记录也置为成功，从而保证HIS与趣医交易结果一致。
      "
, "liujia"));

                items.Add(VersionBLL.GetVersion("9.0.99.BZBC28.96.01", "2015-12-28"
, @"1.修改查看就诊状态同煤版或去就诊状态方法  "
, "liupenglin"));

                items.Add(VersionBLL.GetVersion("A.0.99.BZB102.19.01", "2016-01-02"
, @"1.取消预约接口入口参数增加不带订单ID的类。 
    2.预约接口getorder校验jsonData是否为空，取消预约接口校验jsonData是否为空，为空则取head和body值。"
, "liujia"));

                items.Add(VersionBLL.GetVersion("A.0.99.BZB103.19.01", "2016-01-03"
, @"1.其它联康调用接口入口参数获取直接取head和body值。
    2.接收加密参数后，base64解码前，先用url解码，代替之前的字符替换。
    3.预约挂号接口联康版order|getorder写死预约来源source=23。
    4.增加医院实际就诊量接口(联康专用)。
    5.排班号源统计接口(sysnc|getcount)修改日期时间格式为yyyy-MM-dd HH:mm:ss"
, "liujia"));

                items.Add(VersionBLL.GetVersion("A.0.99.BZB104.19.01", "2016-01-04"
, @"1.接收加密参数后，base64解码前，改回用字符替换方式，解决获取诊疗ID姓名中带王字的用url解码后，base64无法解密。
    2.获取诊疗ID接口，年龄和年龄单位改为选填，根据出生日期获取年龄和年龄单位。"
, "liujia"));
               
                version.item = items;

                return version;
            }
            catch (Exception err)
            {
                VersionModel version = new VersionModel();
                version = null;
                return version;
            }
        }
    }
}
